A System on a Chip (SoC) is an Integrated Circuit (IC) incorporating most or all of the necessary electronic circuits and parts for a system such as a cellular telephone, digital camera, Set Top Box (STB), etc. The SoC may incorporate several circuits that might otherwise be on individual chips, such as a central processing unit (CPU), direct memory access (DMA) unit, memory, input/output (I/O) circuitry, and other circuits required by the specific application. By including all of the circuitry required for a specific application on one IC, production costs for the system and the size of the system can be reduced, and the reliability of the system can be improved.
A SoC is a single chip including several interacting entities. The entities may be referred to as Intellectual Property (IP) cores, since they are generally licensed from other vendors, rather than produced by the manufacturer of the SoC. Initiators, such as a CPU, issue requests to targets, such as a memory, for service. For example, a CPU may need access to a portion of a memory. The CPU would issue a request to the memory for the specific data. The memory would then service the request and return the requested data to the CPU. The initiators and targets are connected through interconnects.
Quality of Service (QoS) may refer to an expectation of performance in terms of how quickly requests are served. For example, an initiator can issue a request, and can expect those requests to be satisfied by the target within a specific time. Performance may be specified in several different ways. Bandwidth performance refers to receiving a certain number of requests per unit time. Latency performance refers to the time for a certain request to be returned. Jitter performance refers to a variation in the time between requests or responses arriving.
QoS standards are especially important when using a SoC because initiators used in SoCs typically have very tight service requirements. For example, some initiators (such as CPUs), have tight latency requirements, and need to be served quickly. Other initiators (such as communication interfaces) are more sensitive to bandwidth and jitter performance. Some SoC's suffer from a QoS model that cannot ensure that certain performance guarantees are met in the SoC.